package cn.dglydrpy.study.basemodule.controller;

import cn.dglydrpy.study.common.json.ResponseResult;
import cn.dglydrpy.study.common.routingDataSource.RoutingWith;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 控制器
 */
//一旦使用了@RestController注解，该控制器类中的方法将不可以转发或者重定向，如果一定要转发或者重定向，
// 必须使用ModelAndView作为处理请求的方法的返回值！
@RestController
@RequestMapping("/base")
public class BaseController {

    @GetMapping(value = "/hello")  // consumes/produces = MediaType.APPLICATION_JSON_VALUE  限定请求HTTP头类型
    @RoutingWith("mysql") // 若查数据库,使用mysql
    public ResponseResult hello(){
        String result = "hello,SpringBoot and Mybatis-Plus!";
        return ResponseResult.create(result);
    }

    @PreAuthorize("hasRole('USER')")  //基于角色的判断
    @GetMapping("/security")
    public String security(){
        return "hello,Spring Security!";
    }

}
